package com.ref.demo1;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

/**
 * @ClassName BeanUtil
 * @Description TODO
 * @Author Kx
 * @Date 2025/3/17 10:06
 * @Version 1.0
 */
public class BeanUtil<T> {
    public T getBean(String className,String methodName,Class<?> []args,Object ...param){
        try {
            // 获取类对象
            Class<?> aClass = Class.forName(className);

            // 通过 class 对象获取构造方法对象
            Constructor<?> constructor = aClass.getConstructor();

            // 实例化对象
            Object object = constructor.newInstance();

            // 通过 Class 对象,获取要调用的方法
            Method method = aClass.getMethod(methodName, args);
            // 调用方法
            return (T) method.invoke(object, param);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new RuntimeException("获取对象失败");
    }
}
